package com.yuandian.customer.perception.service;


import com.yuandian.api.customer_perception.po.SystemOverviewParams;
import com.yuandian.api.customer_perception.vo.*;
import com.yuandian.po.MultipleTableInfo;
import com.yuandian.utils.PageDataInfo;

import java.util.List;

/**
 * <p>
 * 全系统监控总览Service
 * <p>
 *
 * @author lijunhang
 * @date 2021/8/11
 * @since 1.0.0
 */
public interface IMonitorOverviewService {

    /**
     * 全系统总览概况
     * @param params 请求参数
     * @param info 表名
     * @return 全系统总览概况数据
     */
    SystemOverviewVo systemOverview(SystemOverviewParams params, List<MultipleTableInfo> info);

    /**
     * 查询全系统健康度和访问量top5
     * @param params 请求参数
     * @param tableInfos 表名
     * @return 全系统健康度和访问量top5数据
     */
    List<SystemHealthAndVisistTop5Vo> systemHealthAndVisistTop5(SystemOverviewParams params, List<MultipleTableInfo> tableInfos);

    /**
     * 查询全业务健康度和访问量top5
     * @param params 请求参数
     * @param tableInfos 表名
     * @return 全业务健康度和访问量top5数据
     */
    List<BusinessHealthAndVisistTop5Vo> businessHealthAndVisistTop5(SystemOverviewParams params, List<MultipleTableInfo> tableInfos);


    /**
     * 全系统总览列表
     * @param params 请求参数
     * @param tableInfos 表名
     * @return 全系统总览列表数据
     */
    PageDataInfo systemOverviewList(SystemOverviewParams params, List<MultipleTableInfo> tableInfos);
	

    /**
     * 全系统总览列表下载
     * @param params 请求参数
     * @param tableInfos 表名
     * @return 全系统总览列表下载数据
     */
    List<SystemOverviewListVo> systemOverviewListExport(SystemOverviewParams params, List<MultipleTableInfo> tableInfos);

    /**
     * 业务总览列表
     * @param params 请求参数
     * @param tableInfos 表名
     * @return 业务总览列表数据
     */
    PageDataInfo businessOverviewList(SystemOverviewParams params, List<MultipleTableInfo> tableInfos);

    /**
     * 业务总览列表下载
     * @param params 请求参数
     * @param tableInfos 表名
     * @return 业务总览列表下载数据
     */
    List<BusinessOverviewListVo> businessOverviewListExport(SystemOverviewParams params, List<MultipleTableInfo> tableInfos);


    /**
     * 查询江西省下的地市id和名称
     * @param params 请求参数
     * @return 江西省下的地市id和名称数据
     */
    List<SearchOptionVo> queryAreaCodeAndName(SystemOverviewParams params);

}
